[XEN] Implement faster int 0x80 handling for compat mode guests.
authorIan Campbell <ian.campbell@xensource.com>
Tue, 20 Mar 2007 14:33:15 +0000 (14:33 +0000)
committerIan Campbell <ian.campbell@xensource.com>
Tue, 20 Mar 2007 14:33:15 +0000 (14:33 +0000)
commit3e1b9525de43d644f132e0aa00cc519186c9f442
tree0ddcc909008259eb370d5700efc884dc9b94f227
parent4a4e26f321bd83353175cedf8a35706e93c77b30
[XEN] Implement faster int 0x80 handling for compat mode guests.

Using the GPF handler to spot the software interrupt and pass it back
to the guest increases the base syscall time by a factor of 2.7
compared with 32on32 using direct trap to ring 1. (0.3270->0.8680
microseconds, measured with lmbench lat_syscall).

Since the 64 bit IDT can only contain 64 bit segment selectors we
cannot trap directly to compat mode ring 1. However implementing a
dedicated 64 bit ring 0 trap handler allows us to avoid much of the
GPF handler overhead and reduces the overhead to 1.7 times
(0.3270->0.5497 microseconds).

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
xen/arch/x86/x86_64/asm-offsets.c
xen/arch/x86/x86_64/compat/entry.S
xen/arch/x86/x86_64/compat/traps.c
xen/arch/x86/x86_64/entry.S
xen/arch/x86/x86_64/traps.c
xen/include/asm-x86/domain.h
xen/include/asm-x86/processor.h